/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package DAO;

import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import util.HibernateUtil;

public class Service {
    Session session=null;
    
    public void Service(){
        session= HibernateUtil.getSession();
    }
    
    public void addEtudiant(Etudiant etudiant){
        session= HibernateUtil.getSession();
        Transaction transaction=session.beginTransaction();
        session.save(etudiant);
        transaction.commit();
    }
    public Etudiant getEtudiant(Integer id){
        session= HibernateUtil.getSession();
        List<Etudiant> liste=session.createQuery("SELECT e FROM Etudiant e WHERE e.id="+id).list();
        return liste.get(0);
    }
    public Integer getEtudiant(String login,String password){
        session= HibernateUtil.getSession();
        Query query=session.createQuery("SELECT e FROM Etudiant e WHERE e.login=\'"+login+"\' AND e.password=\'"+password+"\'");
        List<Etudiant> liste=query.list();
        if(liste.size()==0)      
        return null;
        return liste.get(0).getId();
    }
    
    
    public void addParcours(Parcours parcours){
        session= HibernateUtil.getSession();
        Transaction transaction=session.beginTransaction();
        session.save(parcours);
        transaction.commit();
    }
    public List<String> getParcours(){
        session= HibernateUtil.getSession();
        return (List<String>) session.createQuery("SELECT p.intitule From Parcours p").list();
    }
    
    public Integer getIdParcours(String parcours){
        session= HibernateUtil.getSession();
        List l=session.createQuery("SELECT p.id From Parcours p Where p.intitule=\'"+parcours+"\'").list();
        return (Integer) l.get(0);
    }
    
    public Parcours getParcour(int id){
        session= HibernateUtil.getSession();
        return (Parcours) session.createQuery("SELECT p From Parcours p Where p.id="+id).list().get(0);
    }
    
    public void addEvenement(Evenement evenement){
        session= HibernateUtil.getSession();
        Transaction transaction=session.beginTransaction();
        session.save(evenement);
        transaction.commit();
    }
    
    public void removeEvenement(Evenement evenement){
        session= HibernateUtil.getSession();
        Transaction transaction=session.beginTransaction();
        List<Evenement> resultat=session.createQuery("SELECT e FROM Evenement e WHERE e.titre=\'"+evenement.getTitre()+"\' and "
                + "e.datedebut=\'"+evenement.getDatedebut()+"\' and e.datefin=\'"+evenement.getDatefin()+"\'").list();
        
        session.delete(resultat.get(0));
        transaction.commit();
    }
    
    public void updateEvenement(Evenement evenement){
        session= HibernateUtil.getSession();
        Transaction transaction=session.beginTransaction();
        List<Evenement> resultat=session.createQuery("SELECT e FROM Evenement e WHERE e.titre=\'"+evenement.getTitre()+"\' and "
                + "e.datedebut=\'"+evenement.getDatedebut()+"\' and e.datefin=\'"+evenement.getDatefin()+"\'").list();
        
        session.update(resultat.get(0));
        transaction.commit();
    }
    
    public List<Evenement> getEvenementsEtudiant(Etudiant etudiant){
        session= HibernateUtil.getSession();
        Query query=session.createQuery("SELECT e FROM Evenement e WHERE e.idetudiant="+ etudiant.getId());
        List<Evenement> evenements=query.list();
        return evenements;
    }
  
}
